package cn.b.sky.mes.cm.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.cm.model.WorkCenterType;

/**
 * 
 * <strong>Title : WorkCenterTypeDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.cm.dao<br></strong>
 * <strong>Description : </strong>工作中心类型数据接口<br> 
 * <strong>Create on : 2015-9-24 下午01:10:21<br></strong>
 * <p>
 * @author zhaoxin01<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface WorkCenterTypeDao {
  /**
   * 
   * <strong>Title : selectAllWorkCenterType<br></strong>
   * <strong>Description : </strong>查询所有工作中心类型（包含锁定记录）<br> 
   * <strong>Create on : 2015-9-24 下午01:36:34<br></strong>
   * <p>
   * @return
   * List<WorkCenterType>
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<WorkCenterType> selectAllWorkCenterType(String siteCode);

  /**
   * 
   * <strong>Title : selectWorkCenterType<br></strong>
   * <strong>Description : </strong>查询工作中心类型<br> 
   * <strong>Create on : 2015-9-24 下午01:37:12<br></strong>
   * <p>
   * @param siteCode 工厂
   * @param workCenterTypeCode 工作中心类型编码
   * @return
   * WorkCenterType
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  WorkCenterType selectWorkCenterType(@Param("siteCode") String siteCode,
      @Param("workCenterTypeCode") String workCenterTypeCode);

  /**
   * 
   * <strong>Title : insertWorkCenterType<br></strong>
   * <strong>Description : </strong>新增工作中心类型<br> 
   * <strong>Create on : 2015-9-24 下午01:38:05<br></strong>
   * <p>
   * @param workCenterType
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertWorkCenterType(WorkCenterType workCenterType);

  /**
   * 
   * <strong>Title : updateWorkCenterType<br></strong>
   * <strong>Description : </strong>更新工作中心类型<br> 
   * <strong>Create on : 2015-9-24 下午01:40:45<br></strong>
   * <p>
   * @param workCenterType
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateWorkCenterType(WorkCenterType workCenterType);

  /**
   * 
   * <strong>Title : deleteWorkCenterType<br></strong>
   * <strong>Description : </strong>删除工作中心类型<br> 
   * <strong>Create on : 2015-9-24 下午01:41:26<br></strong>
   * <p>
   * @param siteCode工厂
   * @param workCenterTypeCode工作中心类型编码
   * void
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteWorkCenterType(@Param("siteCode") String siteCode, @Param("workCenterTypeCode") String workCenterTypeCode);

  /**
   * 
   * <strong>Title : selectWorkCenterTypeInProcess<br></strong>
   * <strong>Description : </strong>查询工艺中使用的工作中心类型数量<br> 
   * <strong>Create on : 2015-9-24 下午01:45:45<br></strong>
   * <p>
   * @param siteCode
   * @param workCenterTypeCode
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectWorkCenterTypeCountInProcess(@Param("siteCode") String siteCode,
      @Param("workCenterTypeCode") String workCenterTypeCode);

  /**
   * 
   * <strong>Title : selectWorkCenterTypeCountInWorkCenter<br></strong>
   * <strong>Description : </strong>查询工作中心类型在工作中心中使用的数量<br> 
   * <strong>Create on : 2015-9-24 下午02:09:26<br></strong>
   * <p>
   * @param siteCode 工厂代码
   * @param workCenterTypeCode 工作中心类型编码
   * @return
   * int
   * @throws 
   * @author zhaoxin01<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectWorkCenterTypeCountInWorkCenter(@Param("siteCode") String siteCode,
      @Param("workCenterTypeCode") String workCenterTypeCode);

  /**
   * 
   * <strong>Title : selectWorkCenterTypesByParentCode<br></strong>
   * <strong>Description : </strong>查询子工作中心类型<br> 
   * <strong>Create on : 2015-9-25 上午10:49:04<br></strong>
   * <p>
   * @param siteCode
   * @param workCenterTypeCode
   * @return
   * List<WorkCenterType>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<WorkCenterType> selectWorkCenterTypesByParentCode(@Param("siteCode") String siteCode,
      @Param("pcode") String pcode);
}
